本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。
Webアプリケーション脆弱性診断の診断項目はどう決まるのか ― MBSDの策定プロセス
はじめに
基本方針

-
技術に沿った脆弱性診断が行えるようにするWebアプリケーションを構成する技術(開発言語やフレームワーク、プラットフォーム、プロトコル)やWebセキュリティ関連の規格、ブラウザに備わる機能は年々進化しており、早いスピードで新しい技術が生まれています。そして、それに伴い攻撃者も進化し、新たな攻撃手法や脆弱性が公表されています。しかし、セキュリティ関連の業界団体や政府機関等が公表する文書は常に最新の情報を追従できているわけではなく、新たな技術に関する情報が反映されるまでに一定の遅れが生じてしまいます。このため、最新の技術を用いて構築されたWebアプリケーションに対しても適切な検証を実施して脆弱性を洗い出せるように、ガイドラインの要求事項以外についても目を配り、技術に沿った診断項目を作る必要があると考えています。
-
優先度の低い要求事項を除外するセキュリティ関連の業界団体や政府機関等が公表する文書での要求事項は、一定の汎用性があるものになっているものの、中には必須要件と判断しにくい要求事項が含まれています。必須か否かはシステムが提供しているサービスや取り扱う情報の機密レベル、要求するセキュリティレベルに応じて事業者自らで判断が必要なものの、過去にOWASP ASVSで定義されていた以下のような要求事項については、不要と判断されるケースも多いのではないでしょうか。
例えば、OWASP ASVS 4.0では、以下のような要求事項があります。項目 項番 説明 V2.1 パスワードセキュリティ 2.1.8 ユーザがより強力なパスワードを設定できるように、パスワード強度メータが用意されている。 ※引用元: OWASP-JA / ASVS-JA: OWASP アプリケーションセキュリティ検証標準 4.0 邦訳版 / V2 認証
本項目は、パスワードの設定や変更画面において、パスワードとして使用する文字列の強度をユーザに可視化する機能の実装を推奨する項目です。同様の項目は脆弱性診断士スキルマッププロジェクトが公開しているWebシステム/Webアプリケーションセキュリティ要件書でも定義されています。
パスワード強度メータにより、ユーザに強力なパスワードの設定を促すことができます。しかし、昨今はパスワード生成及び記憶を人に任せるのではなく、ブラウザやOSに備わるパスワードマネージャーに任せることで安全にパスワード管理できる状況が整いつつあります。また、パスワードではなくPassKeyを使うサイトも増えてきています。この状況を考慮すると、パスワード強度メータは今後不要になる可能性も考えられるのではないでしょうか。
上記は一例ではありますが、容易に検証可能な項目であるため診断項目として採用することは何ら難しくありません。しかし、弊社では本当に必要な項目か否か、優先的に対策していただくべき項目か否かを品質管理チーム内で協議したうえで、採否を判断します。 - Webアプリケーションの脆弱性診断では検証できない項目を除外する
一般的なWebアプリケーションの脆弱性診断は、テスト・本番問わず稼働しているWebアプリケーションに対して疑似的な攻撃を行ったり(ブラックボックステスト)、ソースコードを精査してセキュリティ上の不備を探したり(ホワイトボックステスト)といった手法で行われます。疑似的な攻撃とソースコードの精査を合わせた手法(グレーボックステスト)もありますが、いずれのテスト手法もWebアプリケーションの実装フェーズ以降の成果物(稼働中のWebアプリケーションやソースコード)に対して実施します。
このため、例えば設計書等のドキュメントに記載された情報を確認する必要がある項目、インフラの設定を確認する必要がある項目などは脆弱性診断で検証することは困難です。しかし、OWASP ASVSなどの文書ではシステムの安全を担保するための包括的なセキュリティ事項が定義されているため、そういった脆弱性診断では検証できない項目も含まれています。
具体例を挙げると、OWASP ASVS 5.0の以下のような項目がそれにあたります。
※引用元: OWASP-JA / ASVS-JA: OWASP アプリケーションセキュリティ検証標準 5.0 邦訳版項目 項番 説明 V2.1 バリデーションとビジネスロジックドキュメント 2.1.3 ビジネスロジックの制限とバリデーションに対する期待は、ユーザーごと、およびアプリケーション全体にわたって文書化されている。 V16.1 セキュリティログ記録ドキュメント 16.1.1 アプリケーションのテクノロジスタックの各レイヤで実行されるログ記録、ログ記録されるイベント、ログ形式、ログ記録の保存場所、ログ記録の使用方法、ログ記録へのアクセスコントロール方法、ログの保存期間を文書化したインベントリが存在している。
ASVSだけでなく、TOP 10などにも脆弱性診断という枠組みでは検証が難しい項目が含まれています。
このため、弊社では形式的に網羅するのではなく、実際の診断で検証可能且つ有効な観点を選定したうえで、診断項目を策定しています。脆弱性診断では検証が難しい項目については、お客様の要望をヒアリングしたうえで設計レビューやサーバ構成診断といった別メニューをご案内したり、脆弱性診断のオプションとして対応したりしております。
なお、一部のベンダーでは脆弱性診断においてOWASP ASVSやOWASP TOP 10の網羅をうたっているようなケースがあるため、ベンダーに依頼する際は診断手法や診断項目などをご確認することをお勧めいたします。
診断項目の策定プロセス

情報収集
- 追加すべき診断項目
- 廃止を検討すべき診断項目
- 指摘基準の変更が必要となる項目
- 診断手法や手順の更新が必要な項目
- 新たな攻撃手法

-
Webセキュリティ関連の業界基準やガイドライン
- OWASP
- Web Security Testing Guide
Webアプリケーションの脆弱性検出手法およびテスト項目を体系化した文書です。ペイロードの網羅性は低いものの、具体的な説明とペイロード例が記載されているため、初学者の学習教材や開発者自身が簡易な検証を行う際の参考資料として有用です。
- Application Security Verification Standard
WebアプリケーションおよびAPIなどの各機能領域における17のセキュリティ要件カテゴリを定義し、アプリケーションのビジネスリスク(データの機密性、侵害時の影響度、システムの重要度)に基づいて、3段階のセキュリティ成熟度レベルを適用するフレームワークです。 - Top 10
Webアプリケーションのセキュリティに関する重大リスクのトップ10を定めたものです。
不定期で見直しが行われており、話題になったインシデントで悪用された脆弱性や、報告が急増した脆弱性などその時々の状況を考慮して選定されるため、実情に沿った内容になっています。
昨年4年ぶりに更新され、2026年1月にはOWASP Japan Chapterによって日本語翻訳版がリリースされました。 - API Security Top 10
前述のTop 10はWebアプリケーション向けの内容となっているのに対し、API Securityはその名の通りWeb API特有のセキュリティに関する重大リスクのトップ10を定めたものです。
- Web Security Testing Guide
- ISOG-J(日本セキュリティオペレーション事業者協議会)
- Webシステム / Webアプリケーションセキュリティ要件書
脆弱性診断やペネトレーションテストに関わるベンダーのエンジニアによって作成された、Webアプリケーションを設計/開発/運用する上で最低限満たしておくべきセキュリティ要件を定義した文書です。
弊社でフェローを務める国分やペネトレーションテストや脆弱性診断に携わるメンバーも執筆に携わっています。 - Webアプリケーション脆弱性診断ガイドライン
Webアプリケーションの脆弱性診断に求められる最低限の診断項目や診断手法を定義した文書です。
スキャンツールの品質や診断員のスキルに依存することなく、一定レベルの手動診断を行えることを目指して作成されたものです。 - 細かすぎるけど伝わってほしい脆弱性診断手法ドキュメント
Webアプリケーションの脆弱性のうち、検証方法や手順が特殊なものにフォーカスして診断手法をまとめた文書です。
- Webシステム / Webアプリケーションセキュリティ要件書
- 政府機関や関連団体などが公表するガイドライン
個別の説明は省略させていただきますが、国内外の政府機関や社団法人等が公表するセキュリティや認証、本人確認、決済等に関するガイドラインを参考にしています。
- デジタル庁
- 経済産業省
- 一般社団法人キャッシュレス推進協議会
- コード決済における不正流出したクレジットカード番号等の不正利用防止対策に関するガイドライン
- コード決済における不正な銀行口座紐づけの防止対策に関するガイドライン
- 一般社団法人OpenIDファウンデーション・ジャパン
- National Institute of Standards and Technology
- PCI-SSC
- Web関連のセキュリティ規格やクライアント(ブラウザ)に関する情報
クライアントを取り巻くセキュリティの規格や機能などについては、Web技術の標準化を行う非営利団体(w3c)が公表している文書やブラウザベンダーが公表しているブラウザのリリースノートを参照して最新の情報を収集しています。
- セキュリティカンファレンスの資料
- 主なセキュリティカンファレンス
- 既知脆弱性やインシデントに関する情報、バグバウンティのWrite-up等
日々様々な脆弱性やインシデントに関する情報、バグバウンティのWriteupなどが公表されているため、その中から主に以下のような情報をピックアップして確認しています。-
利用者数が多い著名なソフトウェアやフレームワークに関する脆弱性情報
-
SNS上で話題になっている脆弱性情報
-
国内外のセキュリティエンジニアがブログやSNSで公開する情報
-
- OWASP
- お客様から頂く診断項目に関する要望や質問
- プロジェクトマネージャーや診断員が考える診断項目の改善事項や要望
- 過去の診断において、リスク評価や報告の要否に悩んだ項目
収集した情報の整理
- 診断項目の概要
- 診断項目の詳細
- 目的
- 策定・変更の経緯
- 診断手順や手法
- 情報元(当該項目を定義した団体及び文書、社内からの起案である場合は起案者名等)
- 起案理由
- 懸念事項
- 診断対象に与える影響(安全に検証可能か否か)
- 既存の診断項目や他のガイドラインとの整合性
- 内製ツールでの対応要否
- 根本的対策の有無や対策に要するコスト
- 対策による弊害の有無
採否の協議


- Webアプリケーションに対する脆弱性診断において、検証可能な項目であるか
- ブラックボックステスト方式で検証する場合、対象システムやシステムの利用者に悪影響を及ぼさず非破壊で安全に検証可能であるか
- 検証する目的や必要性について納得できるか
- 他の組織が公表するガイドラインと整合性がとれているか
- システムのセキュリティ向上、攻撃の被害軽減等につながるか
- 当該項目を対策した場合、利便性が著しく損なわれるなどの弊害はないか
▼報告基準の変更候補の項目を検討する際の観点
- 報告基準の変更理由について納得できるか
- 報告基準を変更した場合、他の検証項目に影響を与えることがないか
- 他の組織が公表するガイドラインと整合性がとれているか
- システムのセキュリティ向上、攻撃の被害軽減等につながるか
▼除外候補の項目を検討する際の観点
- 当該項目の検証・報告を止めたとしても、システムの機密性・完全性・可用性に大きな影響を与えることがないか
- 既にクライアント側でサポートが終了している機能や技術に関する項目であるか
- クライアント側においてセキュリティ上好ましくない状況に限り、影響を受ける事象であるか
- サポートが終了したクライアントソフトウェア(ブラウザ等)を利用している場合のみ影響を受ける
- Webアプリケーションの利用者自身が危険な行動(意図的にセキュリティレベルを下げる設定を行う、セキュリティの警告を無視するなどの操作)をした場合にのみ影響を受ける
実際に過去の診断項目の改定において検討した項目と採否の理由を以下に例示します。
追加した項目
そして、属性値において"None"が明示的に指定されている場合はお客様に"Info"という危険度で報告しています。
[追加理由]
- 本項目の採否を検討したタイミングで、主要なモダンブラウザにおいてSameSite属性がサポートされていたため、積極的にSameSite属性を活用できる状況が整ったと判断した
- SameSite属性を適切に用いることにより受動的攻撃の被害の減少が期待でき、利用者及び事業者双方のメリットになるため、本項目を検証することが望ましいと判断した
報告基準を変更した項目
▼パスワード設計の不備(パスワードに使用できる文字列の制限)従来、弊社の脆弱性診断においてパスワード設計の不備を検証する際、文字種に関しては「使用可能な文字種を制限しているか否か」という観点で検証を実施しており、例えば記号を使えない状況が確認できた場合は、"Info"として報告していました。
この基準は、ISOG-Jの「Webシステム/Webアプリケーションセキュリティ要件書」を参考にして定めたものです。
| 項目 | 項番 | 要件 | 備考 |
| パスワード | 1.3.3 | パスワード⽂字列として使⽤可能な⽂字種は制限しないこと | 任意の⼤⼩英字、数字、記号、空⽩、Unicode⽂字など任意の⽂字が利⽤可能である必要があります。 |
しかし、NISTが2025年7月に公表したSP 800-63B-4では、構成規則に関するルールが追加されました。
| 項目 | 項番 | 要件 |
| Password Verifiers | 3.1.1.2-5 |
原文: |
| 項目 | 説明 |
| Strength of Passwords / A.3.Complexity | 原文: research has shown that users respond in very predictable ways to the requirements imposed by composition rules. For example, a user who might have chosen “password” as their password would be relatively likely to choose "Password1" if required to include an uppercase letter and a number or "Password1!" if a symbol is also required. 日本語訳: 研究によれば、ユーザーは構成ルールによって課される要件に対して非常に予測可能な方法で対応することが示されている。例えば、「password」をパスワードとして選択した可能性のあるユーザーは、大文字と数字を含むことが要求された場合「Password1」を、記号も要求された場合「Password1!」を選択する可能性が比較的高い。 |
つまり、構成規則を課したとしてもユーザ自身がパスワード文字列を設定する場合は容易に推測できる文字列を設定する可能性があり、構成ルールの強制が強度向上につながるとは限らないということです。
これを受け、弊社ではパスワード設計に関する報告基準の見直しを行いました。 従来パスワード文字列の文字種が制限されていた場合はその旨を報告しましたが、現在は文字種の制限に加えて、文字種の組み合わせを強制していた場合も不適切であると判断し、その旨を報告しています。
[変更理由]
- NIST SP800-63Bの改定内容及び根拠を確認し、上記要件を考慮するのが望ましいと判断した
- 今後OSやブラウザに備わるパスワードマネージャーの活用が進むと考えられるものの、構成規則の強制が原因でパスワードマネージャーによって生成された文字列が弾かれてしまうことがある。よって、安全性だけでなく利便性にも影響を与えることから、構成規則の強制は不適切であると判断した
除外した項目
デスクトップアプリケーションとして利用できるだけでなくFlash Playerというプラグインを介してブラウザ上でも利用できたため、Webページに実装されたJavaScriptをFlashから呼び出したり、外部ドメイン上に配置したWebアプリケーションと連携したりといったことも可能でした。
このため、セキュリティを意識せずに開発していた場合、「Cross-Site Flashing(XSF)」や「クロスドメインのアクセス制御不備(crossdomain.xml)」などの脆弱性を作り込んでしまうことがありました。
一時期はFlashを用いた様々なコンテンツがインターネット上で公開されていましたが、Flashを動作させるためのソフトウェアにおいて脆弱性が頻出したほか、HTMLやJavaScriptの進化によりFlashを使わず同程度の機能を実装できるようになった、など様々な理由で衰退が進みました。その結果、2020年末でサポートが終了し、現在では使われない技術となりました。
弊社ではこのような経緯を考慮し、2022年にFlashが関連する脆弱性の検証を診断項目から除外しました。
[除外理由]
- Flashの開発元であるベンダー(Adobe)がサポートを終了した
- 主要なブラウザベンダーでは、Flash Playerをデフォルトでブロックした後にサポートを終了した
- 上記状況を鑑みるに、WebアプリケーションにおいてFlashを利用しつづけることは考えにくい。また、クライアント側でFlashが動かないのであれば脆弱性があっても悪用できないため、診断項目から除外しても問題ないと判断した
上記はほんの一例で、その年によって議題に挙がる項目数は増減するものの、1~2年の間で40件以上蓄積されるため、1度の改定で複数回のミーティングを重ねて採否を決定しています。
なお、新規追加や変更項目については、あわせて報告時の危険度評価、報告基準、診断手順なども協議しています。
新項目でサービスを提供するための準備
診断項目に関する協議が全て終了した後に、改定のタスクを取り仕切る品質管理チームの担当者は新しい診断項目でサービスを提供するための準備を行います。
- 診断手法や指摘基準の整理
- 成果物(速報や報告書)のテンプレート作成
- 社内向けの説明資料作成
- 診断業務に従事するメンバーへの説明
これらを個別に説明したいところではありますが、ここまでの内容で長い記事になってしまったので、簡潔にご説明します。
弊社にはWebアプリケーションの脆弱性診断に従事する診断員が多数在籍しているため、 業務を標準化して全員が同じ品質で安定的にサービス提供できるよう努める必要があります。
また、診断員自身が新しい項目をお客様に説明できるレベルで理解して作業に従事することが望ましいと考えています。
このため、以下の情報を含む資料やテンプレートを用意したうえで説明会を実施し、新しい項目でのサービス提供に備えています。
- 追加・変更・削除した診断項目
- 追加・変更・削除の理由
- 関連するガイドライン
- 診断作業に関する情報(手順や手法、ペイロード)
- 診断時の注意事項
- 報告する際に用いるテンプレート
終わりに
おすすめ記事
キーワードで探す
テーマで探す
筆者で探す
- #MBSD
- #MBSD-SOC
- #吉川孝志
- #寺田健
- #高江洲 勲
- #プロフェッショナルサービス事業部
- #小河哲之
- #福田美香
- #山本健太
- #R&D部
- #洲崎俊
- #Alice
- #浦田秀弥
- #岩崎 利己
- #諌山貴由
- #米山俊嗣
- #桝屋雅文
- #金子俊介
- #安田祐一
- #廣田 一貴
- #白倉 大河
- #小山凌弥
- #先端技術セキュリティセンター
- #サイバーインテリジェンスグループ
- #糟谷 正樹
- #国分裕
- #井餘田 笙悟
- #藤縄 直弘
- #吉田裕也
- #MI2
- #坂島悠太
- #一ノ瀬太樹
- #加藤 創
- #荒牧 努
- #服部 慎二
- #戸田廉
- #露木 拓巳
- #望月 岳
- #藤田 将弘